package main

import "fmt"

//参数的传递（留空）
//引用传递 值传递

// 函数的作用域
// 局部变量
// 1.函数内部定义的变量，只能在函数内部调用
// 全部变量（全局变量）
// 1.函数外部定义的变量,默认定义在上面，方便文件统一查看和管理全局变量
var num int = 1

func main4() {
	f1()
}
func f1() {
	fmt.Println(num)
}

// 临时变量，我们可以在if后面写一个临时变量，
func main() {
	temp := 100 //局部变量
	// 定义一个只在 if 中生效的变量
	// if 临时变量(a,b := 1,2);条件判断{} , if 后面只能写一个分号
	// 小作用域可以用到大作用域中的变量，反之则不行。
	// 对于很多一次性的变量，都可以这么写

	//其实对于Java中的学习没啥用，就是我们可以用正常的写
	if a := 1; a <= 10 {
		fmt.Println(temp)
		fmt.Println(num)
		fmt.Println(a)

		// 就近原则
		if a, b := 2, 2; a <= 10 {
			fmt.Println(a)
			fmt.Println(b)
		}
	}
	fmt.Println(num)
}

/*
if a:=1;a < 10{

}
等同于Java和C++中的
if(a>=10){
int a = 1;
}
*/

//Go语言中没有必要使用无意义变量
